#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<limits.h>
#pragma pack(8)
union s5
{
	short s[7];
	int i;
};

enum color
{
	RED,
	BLUE,
	GREEN=LLONG_MAX,
};

struct s1
{
	double d;
	char c1;
	int i;
};
struct s2
{
	char c;
	struct s1 s1[3];
	double d;
};
struct s3
{
	char c1 : 2;
	char c2 : 4;
	char c3 : 5;
	char c4 : 4;
};

struct s4
{
	char c[5];
	int i;
};


int main(void)
{
	//enum color c;
	//printf("%d\n", sizeof(c));
	//printf("%d\n", sizeof(int));
	//printf("%d\n", sizeof(long));
	//printf("%d\n", sizeof(long long));
	//printf("%d\n", INT_MAX);
	//printf("%ld\n", LONG_MAX);
	//printf(" %lld \n", LLONG_MAX);
	//struct s3 s3 = { 0 };
	//s3.c1 = 10;
	//s3.c2 = 12;
	//s3.c3 = 3;
	//s3.c4 = 4;
	//char* i = (char*)&s3;
	//printf("%d %d\n", sizeof(struct s3), *i);
	printf("%d\n", sizeof(struct s1));
	printf("%d\n", sizeof(struct s2));
	//printf("%d\n", sizeof(union s5));
	//struct s3 s3 = {0};
	//s3.c1 = 1;
	//s3.c2 = 24;
	//char *c = (char*)&s3;
	//printf("%d", *c);
	return 0;
}